/***********************************************************************************
    Filename: hal_digio.h

    Copyright 2007 Texas Instruments, Inc.
***********************************************************************************/

#ifndef HAL_DIGIO_H
#define HAL_DIGIO_H

#ifdef __cplusplus
extern "C" {
#endif

#include "hal_types.h"

enum {
    HAL_DIGIO_INPUT,
    HAL_DIGIO_OUTPUT
};

enum {
    HAL_DIGIO_INT_FALLING_EDGE,
    HAL_DIGIO_INT_RISING_EDGE
};


typedef struct {
    uint8 port;
    uint8 pin;
    uint8 dir;
    uint8 initval;
    uint8 pin_bm;
} digioConfig;


#define HAL_DIGIO_OK       0
#define HAL_DIGIO_ERROR  (~0)


//----------------------------------------------------------------------------------
// Function declarations
//----------------------------------------------------------------------------------

uint8 halDigioConfig(const digioConfig* p);
uint8 halDigioClear(const digioConfig* p);
uint8 halDigioToggle(const digioConfig* p);
uint8 halDigioSet(const digioConfig* p);
uint8 halDigioGet(const digioConfig* p);

uint8 halDigioIntEnable(const digioConfig *p);
uint8 halDigioIntDisable(const digioConfig *p);
uint8 halDigioIntClear(const digioConfig *p);
uint8 halDigioIntSetEdge(const digioConfig *p, uint8 edge);


extern void digio_vConnectIsrGdo2(void);

#ifdef  __cplusplus
}
#endif

/**********************************************************************************/
#endif
